package com.mjf.jst.vo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * desc
 * </p>
 *
 * @author chenshoumeng
 * @date 2025/7/12 22:35
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class JstSalesOutVO {

    private Integer code;
    private String msg;
    private JstSalesOutVO.OutInfoData data;

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class OutInfoData {
        private Integer page_index;
        private Integer page_size;
        private Boolean has_next; // 是否有下一页
        private List<OutInfoDataList> datas;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class OutInfoDataList {
        /** 店铺编号 */
        private Integer shop_id;

        /** 店铺名称 */
        private String shop_name;

        /** 出库单号 */
        private Long io_id;

        /** 线上订单号1 */
        private String so_id;

        /** 销售订单号（内部单号） */
        private Long o_id;

        /** 出库创建时间 */
        private String created;

        /** 单据备注 */
        private String remark;

        /** 实付金额 */
        private BigDecimal paid_amount;

        /** 优惠金额1 */
        private BigDecimal free_amount;

        /** 买家实付金额1 */
        private BigDecimal buyer_paid_amount;

        /** 买家支付运费1 */
        private BigDecimal freight;

        /** 线下备注1 */
        private String node;

        /** 是否已推送(0-否；1-是) */
        private Integer push_flag;

        /** 数据时间戳（自动更新） */
        private String timestamp;

        /** 单据状态: WaitConfirm=待出库; Confirmed=已出库; Delete=作废; Cancelled=取消; OuterConfirming=外部发货中 */
        private String status;

        /** 修改时间 */
        private String modified;

        /** 计划发货日期 */
        private String io_date;

        /** 数据时间戳 */
        private Long ts;
        // 商品明细
        private List<OutInfoDataItemsList> items;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class OutInfoDataItemsList {
        /** 子单号 */
        private Long ioi_id;

        /** 图片 */
        private String pic;

        /** 商品编码 */
        private String sku_id;

        /** 数量 */
        private Integer qty;

        /** 商品名称 */
        private String name;

        /** 颜色规格 */
        private String properties_value;

        /** 单价 */
        private BigDecimal sale_price;

        /** 订单子订单号 */
        private String oi_id;

        /** 金额 */
        private BigDecimal sale_amount;

        /** 款式编码 */
        private String i_id;

        /** 商品单位 */
        private String unit;

        /** 原价 */
        private BigDecimal sale_base_price;

        /** 组合装商品编码 */
        private String combine_sku_id;

        /** 是否赠品 */
        private Boolean is_gift;

        /** 子订单号，商家系统订单商品明细主键 */
        private String outer_oi_id;

        /** 原始线上订单号 */
        private String raw_so_id;

        /** 批次号，系统中相关业务项需配置 */
        private String batch_id;

        /** 批次日期，系统中相关业务项需配置 */
        private String product_date;

        /** 供应商编号，系统中相关业务项需配置 */
        private Integer supplier_id;

        /** 有效期至，系统中相关业务项需配置 */
        private String expiration_date;

        /** 买家实付 */
        private BigDecimal buyer_paid_amount;
    }



}
